Skip to content

Comments

egressgw: Let the EGW manager relax rp_filter on egress device#7

Open
MitchLewis930 wants to merge 1 commit intopr_047_beforefrom
pr_047_after
Open

egressgw: Let the EGW manager relax rp_filter on egress device#7
MitchLewis930 wants to merge 1 commit intopr_047_beforefrom
pr_047_after

Conversation

@MitchLewis930
Copy link

@MitchLewis930 MitchLewis930 commented Jan 30, 2026

PR_047


Note

Medium Risk
Changes runtime kernel sysctl (rp_filter) settings during egress-gateway reconciliation, which can affect node networking behavior if interface selection or reconciliation timing is wrong.

Overview
Egress Gateway reconciliation now tracks the selected egress interface for each policy and, when the local node is acting as the gateway, proactively relaxes rp_filter on that interface by applying net.ipv4.conf.<iface>.rp_filter=2 via the injected sysctl provider (with retry on failure).

To support this, gateway config derivation now records ifaceName and a localNodeConfiguredAsGateway flag, and the netdevice helper for “interface with this IPv4” is upgraded to return the matching interface name. Privileged tests are updated to use a real sysctl implementation, ensure rp_filter starts enabled, and assert only the active egress interface is relaxed while others remain at the default.

Written by Cursor Bugbot for commit 43d65ed. This will update automatically on new commits. Configure here.

Pods running on the Egress GW node fail to communicate with an external
endpoint through the Egress GW due to the rp_filter in an environment
where egress IP is assigned to a different interface than the one with
the default route. The reply packets from the external endpoints are
dropped by the rp_filter

- A request from a local pod hits eth0 with the default route.
  It matches an IEGP, gets masqueraded & bpf-redirected to eth1 with Egress IP.
- Replies hit eth1, are revSNATed, and passed on to the stack.
  rp-filter complains that they are received on eth1, when the route doesn't point towards eth1.

This PR fixes this issue by relaxing rp_filter on interfaces with Egress IP.

Signed-off-by: Yusuke Suzuki <yusuke.suzuki@isovalent.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants